"""
通过将图像与低通滤波器卷积核卷积来实现平滑图像。
它有助于消除噪音，从图像中去除了高频内容（例如：噪声，边缘）。
因此在此操作中边缘会模糊一点。（有的平滑技术也不会平滑边缘）。
"""

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
img_path = "/Users/mac/Documents/Learning/LearningOpencv/datasets/1.jpg"

#载入原图
img = cv2.imread(img_path)

# 均值滤波
# 简单的平均卷积操作（卷积核：9个全1的矩阵）
blur = cv2.blur(img, (3, 3))
cv2.imshow('blur', blur)

# 方框滤波
# 基本和均值一样，可以选择归一化,容易越界
box = cv2.boxFilter(img,-1,(3,3), normalize=False)  
cv2.imshow('box', box)

# 高斯滤波
# 高斯模糊的卷积核里的数值是满足高斯分布，相当于更重视中间的
aussian = cv2.GaussianBlur(img, (5, 5), 1)  
cv2.imshow('aussian', aussian)

# 中值滤波
# 相当于用中间值代替，平滑(去噪)效果最好
median = cv2.medianBlur(img, 5) 
cv2.imshow('median', median)
cv2.waitKey(0)
